//
// Created by haoly on 2025/5/23.
//
/**
 * Program 12.1 Symbol-table abstract data type
 * ---------------------------------------------------------------------------
 * This interface defines operations for a simple symbol table:
 * - initialize, and
 * - return the item count, and
 * - add a new item, and
 * - find an item with a given key, and
 * - delete an item with a given key, and
 * - select the kth smallest item, and
 * - visit the items in order of their keys.
 *
 */

#ifndef ST_H
#define ST_H
#include "Item.h"
typedef struct STnode* link;

void STinit(int);

int STcount();

void STinsert(Item);

Item STsearch(Key);

void STdelete(Item);

Item STselect(int);

void STsort(void (*visit)(Item));

link STjoin(link a, link b);



#endif //ST_H
